package javase.javase02.networkprograming;

import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author: Gan
 * @date 2021/4/21 0021 19:55
 * @description: 安全的终止线程
 * 提示: 用flag标记  如果为true 正常执行 如果为false 终止线程执行
 * 在终止之前,去做一个日志保存 , 将终止信息保存到log.txt当中
 * 利用FileWriter  , 2021-4-28 时分秒 :  某个线程 终止了
 **/
public class SecurityStopThread {
    public static void main(String[] args) throws InterruptedException {
        SecurityStop ss = new SecurityStop();
        ss.setName("猪一样的你");
        ss.start();
        Thread.sleep(3000);
        ss.flag = false;

    }
}

class SecurityStop extends Thread {
    boolean flag = true;

    @Override
    public void run() {
        for (int i = 0; i < 6; i++) {
            if (flag) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(Thread.currentThread().getName() + "正在执行。");
            } else {
                try {
                    FileWriter fw = new FileWriter("log.txt");
                   /* SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    String date = sm.format(new Date());*/
                    /*String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());*/
                    new FileWriter("log.txt").write(
                            new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(
                                    new Date()) + " " + Thread.currentThread().getName() + "终止了.");
                    fw.flush();
                    fw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return;
            }
        }
    }
}